Conversation
The system instruction gives the answer format as a template of bracketed placeholders, and the model copies them instead of filling them in: on four fabricated events the old instruction opened every answer with the literal "[Краткое summary]". The format is now one filled example, kept inside a tag so it reads as a sample rather than as part of the conversation, and the rules say what the answer contains instead of what it must not do. Forbidding the copying was the alternative, but it leaves the placeholders in front of the model. On the same four events an example-based instruction opened every answer with a sentence about the error itself and kept all three section headings. The example is written in the markup the rules ask for: identifiers in backticks, multi-line code in a fenced block between list items. The rules never mentioned inline code, and answers came back with identifiers as plain words and without code blocks. Everything outside the example is in English, the language of the spotlighting rules it is concatenated with. The example carries the language of the answer.
| * | ||
| * The shape comes from a filled example. | ||
| * | ||
| * @see {@link https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices | Claude prompting best practices} |
There was a problem hiding this comment.
as i remember we've used OpenAI API, maybe there is peace of doc from them?
it would be more relevant
There was a problem hiding this comment.
Done, swapped to the OpenAI prompt engineering guide.
| - Write valid Markdown | ||
| - Indent nested lists with spaces, the same width on every level | ||
| - Where nesting would grow deeper, write a subsection instead | ||
| - Add links where they help |
There was a problem hiding this comment.
Maybe we should clarify this rule so the model doesn't fabricate links:
| - Add links where they help | |
| - Add links where they help, do not invent or guess URLs. |
| - Put identifiers, field names, values and one-line snippets in backticks | ||
| - Keep headings plain: no numbering, no code | ||
| - Put multi-line code in a fenced block with a language tag | ||
| - Never place code block inside list item, keep it between items |
There was a problem hiding this comment.
Would it make sense to add rule for incomplete event data? For example: If the event data is insufficient to determine the root cause, say so instead of guessing.
There was a problem hiding this comment.
Make sense.
Reworked prompt once more: added corresponding instructions to avoid imagining solution and just skip last sections about proposed fix and how to avoid this in future.
To guarantee required answer structure, added additional example.
Also instructions was shrinked to optimize prompt size.
The answer format was a template of bracketed placeholders, so the model copied it instead of filling it in..
Before and after, the first line of an answer:
Steps, markup instructions and examples was refactored in dedicated sections following OpenAI Prompt guide.